package com.zhang.authoritycenter.common.mapper.authority;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhang.authoritycenter.common.model.dao.authority.AuthorityMenuDO;
import com.zhang.authoritycenter.common.model.dto.authority.MenuQueryPageReqDTO;
import com.zhang.authoritycenter.common.model.dto.authority.QueryMenuListReqDTO;
import com.zhang.authoritycenter.common.model.vo.authority.GetMenuVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 系统菜单表 Mapper 接口
 * </p>
 *
 * @author KingHood
 * @since 2023-12-18
 */
public interface AuthorityMenuMapper extends BaseMapper<AuthorityMenuDO> {

    /**
     * 根据父类id，查找子分类，当父类id为null的时候，为根路径
     *
     * @param page 分页数据
     * @param data 菜单父类
     * @return 菜单列表
     * @author zfj
     * @date 2023/12/18
     */
    Page<AuthorityMenuDO> queryPageByParentId(Page<Object> page, @Param("data") MenuQueryPageReqDTO data);

    /**
     * 获取菜单信息
     *
     * @param id 菜单信息
     * @return 菜单信息
     * @author zfj
     * @date 2023/12/18
     */
    GetMenuVO getMenu(@Param("id") Long id);

    /**
     * 查找用户的权限菜单
     *
     * @param data 筛选信息
     * @param userId 用户id
     * @return
     * @author zfj
     * @date 2023/12/19
     */
    List<AuthorityMenuDO> queryMenuListByUserId(@Param("userId") Long userId, @Param("data") QueryMenuListReqDTO data);
}
